package com.lord.label.controller;

import java.util.List;

import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.lord.label.common.ResultAjax;
import com.lord.label.domain.Rule;
import com.lord.label.service.RuleService;
import com.lord.label.utils.ResultUtil;

/**
 * 
 * @Description: 采集规则控制层
 * @author Lord
 * @date 2017年6月1日 上午9:51:38
 */
@Controller
public class RuleController {
	
	@Autowired
	private RuleService ruleService;
	
	
	/**
	 * 
	 * @Title: ruleFindOne
	 * @Description: 查看规则详情
	 * @param id	主键id
	 * @return
	 * @author Lord 
	 * @date 2017年6月1日 上午9:52:07
	 */
	@SuppressWarnings("unchecked")
	@GetMapping(value="rules/{id}")
	@ResponseBody
	public ResultAjax<Rule> ruleFindOne(@PathVariable("id") Long id){
		return ResultUtil.success(ruleService.findById(id));
	}
	
	/**
	 * 
	 * @Title: findAll
	 * @Description: 规则列表
	 * @param model
	 * @return
	 * @author Lord 
	 * @date 2017年6月1日 上午9:52:37
	 */
	@GetMapping(value="rules")
	public String findAll(Model model){
		List<Rule> list = ruleService.findAll();
		model.addAttribute("list", list);
		return "rule";
	}
	
	/**
	 * 
	 * @Title: ruleUpdate
	 * @Description: 更新规则信息
	 * @param rule	规则信息实体
	 * @param bindingResult	springMVC参数验证
	 * @return
	 * @author Lord
	 * @date 2017年6月1日 上午9:53:11
	 */
	@SuppressWarnings("unchecked")
	@PutMapping(value="rules")
	@ResponseBody
	public ResultAjax<Rule> ruleUpdate(@Valid Rule rule, BindingResult bindingResult){
		if(bindingResult.hasErrors()){
			return ResultUtil.error(-3, bindingResult.getFieldError().getDefaultMessage());
		}
		return ResultUtil.success(ruleService.update(rule));
	}

}
